package model

import exceptions.RegistroInconsistenteException
import exceptions.MontoInvalidoException
import scala.collection.mutable.ArrayBuffer

class VerificadorDeConsistencia {
	
  var _verificadores:ArrayBuffer[VerificadorDeConsistencia]=new ArrayBuffer[VerificadorDeConsistencia]
  
	def conVerificador(verificador:VerificadorDeConsistencia)=
		this._verificadores+=verificador

	def verificar(registro:Registro):Boolean= this._verificadores.forall(_.verificacion(registro))
	
	def verificacion(registro:Registro):Boolean=true
}

final class VerificadorDeMontoValido() extends VerificadorDeConsistencia{
	override def verificacion(registro:Registro)={
		registro.ventas > 0
	}
}

final class VerificadorDeFechaDeCreacionValida() extends VerificadorDeConsistencia{
	override def verificacion(registro:Registro)={
		registro.anho < registro.anhoDeRegistro
	}
}

final class VerificadorDeProvinciaValida() extends VerificadorDeConsistencia{
	override def verificacion(registro:Registro)={
		registro.empresa.fuenteRecabadoraDeInformacion.rigeEn(registro.empresa.provincia)
	}
}